DAY8:Odd or Even?


Posted by birdbirdmurmur on 2023-07-21

題目連結:

Odd or Even?

思考邏輯:

這題還算簡單
發現forfor...of用法還是有一點差別
如果使用for...of要先判斷array是否為0
單純使用for就可以不用
因為這裡頭的i不太一樣
for..of的i是直接取值
for則是位置

版上看到使用reduce很有效率的解法
reduce((acc , cur) => a+b, 0)
acc為累加器
cur為當前迭代的元素
(acc , cur) => a+b
這行箭頭函示就是array的總和
0則為初始值
這樣處理真的很有效率!

解法:

  1. for..of...

    function oddOrEven(array) {
    if(array.length === 0)
      return 'even'
    
    let sum = 0
    
    for(let i of array){
     sum += i
    }
    
    if(sum % 2 === 0)
     return 'even'
    else 
     return 'odd'
    }
    
  2. for

    function oddOrEven(array) {
    let sum = 0
    for(let i=0; i<array.length; i++){
     sum += array[i]
    }
    
    if(sum % 2 === 0)
     return 'even'
    else 
     return 'odd'
    }
    
  3. reduce
    function oddOrEven(arr) {
    return arr.reduce((a,b)=>a+b,0) % 2 ? 'odd' : 'even';
    }
    

#javascript #Codewars #reduce







Related Posts

[第二週] 變數的型態

[第二週] 變數的型態

MTR04_0709

MTR04_0709

 Day 171

Day 171


Comments